草庐IT

c++ - 带有信号量的线程安全单例问题

我写了一个简单的单例应用程序。下面是我的示例主类//ThreadsafeSingletonUsingSemaphore.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include#include#include"MySingleton.h"usingnamespacestd;inti=0;#defineTHREADCOUNT100DWORDWINAPIThreadProc(LPVOIDlParam);HANDLEg_semaphore=NULL;int_tmain(intargc,_TCHA

c++ - 使用 ShellExecute C++ 打开长 url

我正在尝试使用ShellExecute()打开一个url.该url是由我的程序为长httpget请求生成的,并且ShellExecute()不工作,不显示任何回应。ShellExecute(NULL,_T("open"),url,NULL,NULL,SW_SHOWNORMAL);//Doesnothingwhenurlistoolong比起我为同一个命令写了一个批处理文件,当url长度大于259个字符时,它会显示这个错误:start"""{mywebsite}/&&&&..."//Repeating&Windowscannotfind'{my-url}/{long-get-reques

c++ - Windows 如何处理加载两个不同版本的 DLL?

问题我正在编写一个使用特定DLL版本的软件。我在执行目录中找到了特定的DLL,因此程序使用了那个。但是现在我不知道如果加载了特定的DLL并启动了另一个需要更新版本的程序会发生什么。有谁知道会发生什么?其他程序崩溃还是我的崩溃?其他这个问题是针对操作系统的:Windows10和windows7。工作站正在运行Windows更新,因此DLL将是最新的。用C++编写代码。 最佳答案 不同的dll可以在不同的进程中加载​​。不同进程的地址空间是独立的,不会互相干扰。如果DLL使用全局命名事物(例如磁盘上的文件、互斥体、共享内存),则特定dl

python - 使用正则表达式解析 winerror.h 和 ntstatus.h 状态/定义

我正在尝试在Python中创建一个正则表达式来捕获来自winerror.h和ntstatus.h的所有最后错误、HRESULT和NTSTATUS定义:>http://www.carrona.org/winerror.html>http://www.codemachine.com/downloads/win71/ntstatus.h例如,对于这段文字:////MessageId:NTE_BAD_PROV_TYPE////MessageText:////Invalidprovidertypespecified.//Moredataisavaiableonblabla.//#defineNT

c++ - 在 Windows 中配置 cmake 项目时未找到 Eigen3_DIR

我想编译一个openproject,它需要Eigen3,我遵循了它的指导方针,但卡在了这一步:“将环境变量Eigen3_DIR设置为{YOUR_EIGEN3_DIRECTORY}/eigen3/cmake。”我已经安装了CMakegui并在配置后打印了以下错误MakeErroratsrc/CMakeLists.txt:15(find_package):Bynotproviding"FindEigen3.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"Ei

c++ - 延迟加载的 DLL 在内存中的加载距离彼此太远

我有一个x64Windows应用程序,它有时会在我无法控制的DLL库中崩溃。这个库实际上是一大组相互依赖的DLL(其中约40个)。崩溃并不总是在同一个地方,但这里有一个正在发生的事情的例子:Exceptionthrownat0x0000018393916B72(foo.dll)inbar.exe:0xC0000005:Accessviolationreadinglocation0x000001831C1F95A0.在此位置,VisualStudio中的反汇编显示如下:0000018393916B72cmpdwordptr[1831C1F95A0h],3起初我觉得这很奇怪,因为这意味着D

c++ - 构建的 ffmpeg.exe 没有按预期工作

在我的C++应用程序中,我想静态使用ffmpeg库。我下载了ffmpeg-3.4.1源并使用MINGW、Yasm和VS2015命令提示符构建了静态链接的ffmpeg,如下所示,下载了msys2-x86_64-20161025.exe打开MINGW命令提示符后,使用命令“pacman-Smakegccdiffutils”安装所需的gcc工具将C:\msys64\usr\bin\link.exe重命名为C:\msys64\usr\bin\link_orig.exe下载yasm32位exe并将其路径设置为PATH环境变量。("%PATH%;D:\ffmpeg")运行VS2015,打开MING

c++ - Windows上使用C++获取文件属性变化时间

我需要修改时间,创建时间和更改时间在使用cpp的窗口中的文件。我正在使用以下代码:stringfilename="D:\\hi.txt";structstatresult;if(stat(filename.c_str(),&result)==0){inta=10;automod_time=result.st_mtime;cout使用它我可以获得修改和创建时间。但是,我无法获取文件的更改时间。我应该如何使用cpp获取文件的更改时间?“更改时间”的定义如下。ModificationtimechangeswhenthecontentofthefilechangesandChangetimec

c++ - gcc 4.8 或更早版本是否存在关于正则表达式的问题?

我正在尝试在一段C++11代码中使用std::regex,但该支持似乎有点问题。一个例子:#include#includeintmain(intargc,constchar*argv[]){std::regexr("st|mt|tr");std::cerr输出:st|mt|trmatchesst?1st|mt|trmatchesmt?1st|mt|trmatchestr?0当使用gcc(MacPortsgcc474.7.1_2)4.7.1编译时,要么使用g++*.cc-otest-std=c++11g++*.cc-otest-std=c++0x或g++*.cc-otest-std=gn

c - 如何通过命令提示符更改标题并保留系统信息

我试图通过命令行启动一个进程,但是当我对cmd使用/k选项时,我丢失了所有系统信息。我如何保存这些信息,是否有一个可能的环境变量,我可以更改它来更改标题。//firstlinewhereIsprintfcommandsintoabuffersprintf(commandLine_buf,"%s/T:F9/KTITLE=Whatisyourcommand",getenv("ComSpec"))@erksun感谢您的建议有效。我对其进行了一些修改,但它起作用了。这就是它的样子。下面sprintf(commandLine_buf,"cmd/cPROMPTSpeaktome$G&TITLEWh